package com.mms.pojo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 存储公共属性的类。
 *
 * @author
 * @date 2021/4/11 - 16:21
 */

//为该类的所有属性添加get、set方法，为该类添加equals、canEquals、hashCode、toString方法。
@Data

//为该类添加一个全参构造器。需要注意的是：由于此时已经有构造器了，Java不再提供无参构造器
@AllArgsConstructor

//为该类添加一个无参构造器。
@NoArgsConstructor
public abstract class Common implements Serializable {

    //是否可用，1 ： 可用 ， 0 ： 禁用
    protected Integer isEnable;

    //创建时间
    //@DateTimeFormat :将前端传递的日期格式字符串转为对应的日期类型数据。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

    /**@JsonFormat :指定日期类型数据在转为json时的格式。
     * timezone ： 指定时区，默认格林威治时间，北京时间需要加上八小时。
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT + 8")
    protected Date createDate;

    //创建者名称
    protected String createUsername;

    //最后修改时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT + 8")
    protected Date lastUpdateDate;

    //最后修改者
    protected String lastUpdateUsername;

    //删除时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT + 8")
    protected Date deleteDate;
}
